<?php
namespace app\index\model;

use think\Model;
use traits\model\SoftDelete;

class User extends Model
{

    // 设置当前模型对应的完整数据表名称
    protected $table = 'ot_user';

    // 设置当前模型的数据库连接
    protected $connection = [
        'type' => 'mysql',
        'hostname' => '127.0.0.1',
        'database' => 'tp5',
        'username' => 'root',
        'password' => 'root',
        'charset' => 'utf8',
        'prefix' => 'ot_',
        'debug'  => false,     // 数据库调试模式
    ];

    protected $pk = 'id';   // 设置主键

//    protected $resultSetType = 'array';     // 返回数据集类型  collection，对象；array，数组      （版本： 5.0.4）

    protected $readonly = ['username'];     // 只读字段

    protected $autoWriteTimestamp = 'datetime';   // 设置时间戳     支持 timestamp，datetime，int（默认）

    protected $createTime = 'create_time';      // 创建时间字段

    protected $updateTime = 'update_time';      // 更新时间字段       如果值为false，表示关闭自动写入update_time字段

    use SoftDelete;         // 软删除
    protected $deleteTime  = 'delete_time';

    // 数据完成
    protected $auto = ['username', 'ip'];
    protected $insert = ['status'=>1];
    protected $update = [];



    /**
     * 获取器
     *
     *      定义数据表中存在的字段
     * @param $value
     * @return mixed
     */
    public function getStatusAttr($value)
    {
        $status = [-1=>'删除', 0=>'禁用', 1=>'正常'];
        return $status[$value];
    }


    /**
     * 获取器
     *
     *      定义数据表中不存在的字段
     * @param $value
     * @param array $data 当前的所有数据数组
     * @return mixed
     */
    public function getStatusTextAttr($value, $data)
    {
        $status = [-1=>'删除', 0=>'禁用', 1=>'正常'];
        return $status[$data['status']];
    }


    /**
     * 修改器
     *
     *      实际保存到数据库中的时候会转为小写
     * @param $value
     * @return string
     */
    public function setUsernameAttr($value)
    {
        return strtolower($value);
    }

    /**
     * 修改器
     *
     *      进行序列化字段的组装
     * @param $value
     * @param array $data （自动传入）当前的所有数据数组
     * @return string
     */
//    public function setEmailAttr($value, $data)
//    {
//        return serialize($data);
//    }






}